Peer-to-peer technology (P2P for short) is referred as ad-hoc network technology, which depends on computer capability and bandwidth of participants in the network, rather than depends on a few servers. In a P2P structure, every node (peer) simultaneously has functions in such three aspects as information consumer, information provider and information communication etc. In a P2P network, rights and duties possessed by every node are all equal.
FIG. 1 shows a schematic view of typical P2P file transmission. Regional network 101 contains node A and node B, and node A and node B are in contact with other nodes outside through edge router 102. Regional network 103 contains node C and node D. Node C and node D are in contact with other nodes outside through edge router 104. Assuming a user in node A wants to acquire a P2P file, node A first needs to acquire a seed file (a.torrent for example) corresponding to the P2P file from a seed server 105. According to BitTorrent protocol, a file issuer will generate and provide a .torrent file (i.e. seed file, also referred as “seed”) according to the file to be issued. The .torrent file is substantially a text file, which contains two parts: tracker server information and file information. Tracker information is mainly address of the tracker server that needs to be used during BT downloading and settings for the tracker server, and file information is generated according to calculation on object file, the result of calculation is encoded according to B encoding rule (Bencode encoding) in BitTorrent protocol. Its main principal is to virtually divide the file provided for downloading into blocks with equal size, and write index information and Hash verification code of each block into .torrent file; thus .torrent file is an “index” of the downloaded file. If user node A wants to download file content, it first needs to acquire corresponding .torrent file, and then uses BT client software to perform download.
FIG. 4A shows a schematic view of a.torrent. Table 1 gives a detailed explanation for content contained in a.torrent.
TABLE 1content in a.torrent filemeaningDStructure of seed file is“dictionary” type.8:announce37:http://tracker.ex-Specifying information ofam.com:8077/announcecorresponding original trackerserver 10613:announce-listStart symbol of backup originaltracker server information1137:http://tracke2.exam.com:8077/an-First backup original trackernounceeserver136:http://track3.exam.org:8000/an-Other backup tracker servernouncee136:http://track4.exam.org:6969/an-nouncee136:http://track5.exam.org:8080/an-nouncee134:http://tr6.exa.n1.n2:2710/an-nouncee140:http://track07.examp.com:2710/an-nounceee10:created by13:Creator1/0.70Creator software13:creation datei1226980360eCreation date8:encoding3:GBKEncoding format4:infod5:files1d6:lengthi183e4:pathStart portion of file information110:3FFile.urle10:path.utf-8112:3EFile.urleed6:lengthi2707e4:path146:3E...<Other content>Content portion of fileinformation
Downloadable node list corresponding to the seed file is stored in the original tracker server 106, as shown in table 2 below. Actually, seed server 105 and original tracker server 106 may be hosted in a same physical server. In table 2, assuming that a P2P file is divided into 4 portions, nodes B, C, D possess several blocks of the P2P file respectively. By acquiring the node list, user node A knows it will connects to which nodes to acquire corresponding file blocks. Since node list may change continuously during operation, for example, new node will be added in continuously and original node will exit continuously, user node A may need to communicate with original tracker server 106 periodically during downloading to query the latest node list.
TABLE 2NodeIP addressFile block identifierB10.1.1.11, 2, 3, 4C20.1.1.21, 2D20.1.1.33, 4